import request from './request'



// 同时也需要导出 EmployeeData 接口
export interface EmployeeData {
  department: string;      // 部门路径
  name: string;           // 姓名
  position: string;       // 职位
  level: string;          // 层级
  performance: string;    // 绩效评价
  departmentName: string; // 部门
}
// 导出员工Excel文件
export const exportEmployeeExcel = async (employeeList?: EmployeeData[], fileName?: string) => {
  try {
    const response = await request({
      url: 'api/exportEmployeeExcel',
      method: 'POST',
      data: employeeList || [], // 员工数据列表
      params: {
        fileName: fileName || '员工信息.xlsx' // 文件名参数
      },
      responseType: 'blob' // 重要：设置响应类型为blob以处理文件下载
    })
    
    // 处理文件下载
    downloadFile(response.data, fileName || '员工信息.xlsx')
  } catch (error) {
    console.error('导出失败:', error)
  }
}



// 下载文件工具函数也需要定义并导出
export const downloadFile = (blob: Blob, filename: string) => {
  // 检查是否支持 download 属性
  const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
  
  if (isIOS) {
    // iOS设备特殊处理
    const url = window.URL.createObjectURL(blob);
    const link = document.createElement('a');
    link.href = url;
    link.target = '_blank'; // iOS Safari需要
    link.click();
    window.URL.revokeObjectURL(url);
  } else {
    // Android和其他设备使用标准方式
    const url = window.URL.createObjectURL(blob);
    const link = document.createElement('a');
    link.href = url;
    link.download = filename;
    document.body.appendChild(link); // 某些浏览器需要添加到DOM
    link.click();
    document.body.removeChild(link); // 清理DOM
    window.URL.revokeObjectURL(url);
  }
}